/*
 * Tencent is pleased to support the open source community by making 蓝鲸 available.
 * Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
 * Licensed under the MIT License (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 * http://opensource.org/licenses/MIT
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language governing permissions and
 * limitations under the License.
 */

package middleware

import (
	"configcenter/src/common"
	"configcenter/src/common/rdapi"
	"configcenter/src/common/util"
	"github.com/gin-gonic/gin"
)

func RequestIDMiddleware(c *gin.Context) {
	rid := util.GetHTTPCCRequestID(c.Request.Header)
	if len(rid) == 0 {
		rid = rdapi.GetHTTPOtherRequestID(c.Request.Header)
		if len(rid) == 0 {
			rid = util.GenerateRID()
		}
		c.Request.Header.Set(common.BKHTTPCCRequestID, rid)
	}
	c.Header(common.BKHTTPCCRequestID, rid)
	c.Next()
}
